#include "main.h"
int main(int argc, const char *argv[])
{
	//打开文件
	FILE*F=fopen("./login.txt","a+");
	if(F==NULL){perror("打开失败");return -1;}
	fprintf(F,"账号:%20s  密码:%20s\n","admin","123456");
	//遍历文件至链表
	struct Plink*P=NULL;
	if((P=my_plink(F))==NULL)return -1;
	//搭建服务器端
	//1、创建套接字
	int S=-1;
	if((S=socket(AF_INET,SOCK_STREAM,0))==-1){perror("创建套接字失败");return -1;}
	//2、绑定本机IP及端口
	struct sockaddr_in addr={0};
	addr.sin_family=AF_INET;
	addr.sin_port=htons(12345);
	addr.sin_addr.s_addr=inet_addr("127.0.0.1");
	if(bind(S,(struct sockaddr*)&addr,sizeof(addr))==-1){perror("绑定失败");return -1;}
	//3、等待客户端请求
	printf("阻塞等待客户端请求\n");
	listen(S,10);
	//4、相应客户端
	printf("响应客户端请求\n");
	int C=-1;
	if((C=accept(S,NULL,NULL))==-1){perror("与客户端建立连接失败");return -1;}
	printf("建立连接成功\n");
	//接收客户端数据
	struct login C_login={0};
	int ret;
	while(1)
	{
		printf("接收客户端数据\n");
		if(read(C,&C_login,sizeof(C_login))==0){printf("客户端断开连接\n");break;}
		printf("接收完成\n");
		ret=my_login(P,C_login);
		printf("反馈客户端结果\n");

		write(C,&ret,4);
	}

	
	//关闭文件
	printf("关闭文件\n");
	close(S);
	fclose(F);
	return 0;
}
